/* $Header: /usr/cvsroot/target/h/wrn/wm/snmp/engine/v3_con.h,v 1.2 2001/11/06 21:35:05 josh Exp $ */

/*
 * Copyright (C) 1999-2005 Wind River Systems, Inc.
 * All rights reserved.  Provided under license only.
 * Distribution or other use of this software is only
 * permitted pursuant to the terms of a license agreement
 * from Wind River Systems (and is otherwise prohibited).
 * Refer to that license agreement for terms of use.
 */


/****************************************************************************
 *  Copyright 1998 Integrated Systems, Inc.
 *  All rights reserved.
 ****************************************************************************/

/*
 * $Log: v3_con.h,v $
 * Revision 1.2  2001/11/06 21:35:05  josh
 * new revised path structure, first pass.  Also removing useless
 * shell include files.
 *
 * Revision 1.1.1.1  2001/11/05 17:47:23  tneale
 * Tornado shuffle
 *
 * Revision 9.5  2001/01/19 22:22:11  paul
 * Update copyright.
 *
 * Revision 9.4  2000/03/17 19:48:44  meister
 * Update copyright notice
 *
 * Revision 9.3  2000/03/09 20:58:36  tneale
 * All structure definitions are now bracketted with a test that
 * potentially sets an alignment pragma.  This is to maintain compatibility
 * with the code base that had been distributed by Wind River.
 *
 * Revision 9.2  2000/03/09 16:59:47  tneale
 *  Added #ifdef for C++ to declare extern C if needed
 *
 * Revision 9.1  2000/02/04 21:54:21  josh
 * prototyping functions that may need to be called by other modules
 * this is done primarily to make the vxWorks compiler happy.
 * Warning:  the prototypes added may be duplicated by a mib_hand.h
 * file generated by Emissary.
 *
 * Revision 9.0  1998/10/16 22:10:24  sar
 * Update version stamp to match release
 *
 * Revision 1.4  1998/08/01 17:29:05  sar
 * Add argument to context length function
 *
 * Revision 1.3  1998/06/09 16:43:54  sar
 * Moved some context routines to snmp so that they are in the core code
 * and can be used by the rest of the core.  Also renamed the routines
 * to keep them separate from usec.
 *
 * Revision 1.2  1998/05/30 02:52:07  sar
 * Modifed the names used for max string length
 * Updated user lookup
 *
 * Revision 1.1  1998/05/23 19:49:40  sar
 * Include files for use with v3 code.  They define the structures
 * and entry points for the various pieces.
 * acc: access and group information
 * auth & priv: authentication and privacy
 * con: context
 * eng: engine ids, both this agents and any others it knows
 * mth: method routines, for use with mib control files
 * user: user info
 *
 */

/* [clearcase]
modification history
-------------------
01a,19apr05,job  update copyright notices
*/


#if (!defined(v3_context_inc))
#define v3_context_inc

#ifdef __cplusplus
extern"C" {
#endif

#if (!defined(asn1_inc))
#include <wrn/wm/snmp/engine/asn1.h>
#endif

#define ETC_CONTEXT_MAX 32

#ifdef WINDNET_STRUCT_ALIGN
#pragma align 1
#endif

typedef struct SNMP_CONTEXT_S
	{
	struct SNMP_CONTEXT_S *next;
	bits8_t               *name;
	ALENGTH_T              length;
	} SNMP_CONTEXT_T;

#ifdef WINDNET_STRUCT_ALIGN
#pragma align 0
#endif

extern SNMP_CONTEXT_T *v3_context_root;

extern int             SNMP_V3_Context_Add    __((bits8_t *, ALENGTH_T));
extern int             SNMP_V3_Context_Remove __((bits8_t *, ALENGTH_T));
extern SNMP_CONTEXT_T *SNMP_V3_Context_Find   __((bits8_t *, ALENGTH_T));

#define SNMP_V3_Context_Name(C)        ((C)->name)
#define SNMP_V3_Context_Name_Length(C) ((C)->length)

extern void contexttable_get  __((OIDC_T, int, OIDC_T *,
				  SNMP_PKT_T *, VB_T *));

extern void contexttable_next  __((OIDC_T, int, OIDC_T *,
				   SNMP_PKT_T *, VB_T *));

#ifdef __cplusplus
}
#endif

#endif /* v3_context_inc */
